#!/bin/bash
test_create_file(){
	size=$create_file_size
	bs="1M"
	if [[ "$mode" == "auto" ]];then
		echo -e "使用默认参数"
		if [[ -n "${create_file_dir}" ]];then
			disk="${create_file_dir}"
		fi
	else
		input '请输入任意一个需要进行测试的磁盘目录(要有读写权限),默认使用-->[ /opt/ ]' disk
	fi
	input_check "$disk" "设置测试磁盘目录" '/opt/' disk

	#获取绝对路径
	if [[ ! -d "$disk" ]];then
		red_z_green_z "设置的路径不存在，已使用默认值-->" "[ /opt/ ]"
		disk='/opt/'
		mkdir -p $disk
	fi
	pushd $disk
	disk=`pwd`
	rom=`df -h ${disk} | awk 'NR==2{print}' | awk '{print $4}' |sed 's/G//' | awk -F '.' '{print $1}'`
	if [[ $rom -lt 16 ]];then
		red_zt_bg "该目录可用磁盘空间不足[ 16G ]，请更换目录或者清理该目录--->" "[ $disk ]"
	else
		red_z "设置信息如下:"
		red_z_green_z "设置测试目录--->" "[ $disk ]"
		if [[ "$mode" == "auto" ]];then
			red_z_green_z "当前模式:" "自动"
		else
			input '按回车继续...' dd
		fi
		red_z_green_z "BS大小设置---> " "[ 1M ]"
		for i in ${size};do
			red_z_green_z "当前块大小--->:" "[ ${i}M ]"
			red_z_green_z "执行命令-->" "[ dd if=/dev/zero of=${disk}/file_${i} bs=$bs count=$i ]"

			dd if=/dev/zero of=${disk}/file_${i} bs=$bs count=$i
			if [[ "$?" == "0" ]];then
				red_z_green_z "文件创建成功---->" "[ file_${i} ]"
				a="成功"
			else
				green_zt "文件创建失败--->" "[ file_${i} ]"
				a="失败"
			fi
			cp ${disk}/file_${i} ${disk}/file_${i}.cp
			if [[ "$?" == "0" ]];then
				red_z_green_z "文件复制成功,复制文件为---> " "[ ${disk}/file_${i}.cp ]"
				b="成功"
			else
				red_bg "文件复制失败---> " "[ ${disk}/file_${i}.cp ]"
				b="失败"
			fi

			red_z_green_z "执行命令-->" "[ tar -cf ${disk}/file_${i}.tar ${disk}/file_${i} ]"
			tar -cf ${disk}/file_${i}.tar ${disk}/file_${i}
			if [[ "$?" == "0" ]];then
				red_z_green_z "文件压缩成功--->" "[ ${disk}/file_${i}.tar ]"
				c="成功"
			else
				red_zt_bg '文件压缩失败,请手动测试--->' "[ ${disk}/file_${i}.tar ]"
				c="失败"
			fi
			red_z_green_z "执行命令-->>" "[ cp ${disk}/file_${i} ${disk}/file_${i}.create ]"
			cp ${disk}/file_${i} ${disk}/file_${i}.create

			red_z_green_z "执行命令--->>" "[ tar -xvf ${disk}/file_${i}.tar ]"
			tar -xvf ${disk}/file_${i}.tar
			if [[ "$?" == "0" ]];then
				red_z_green_z "解压成功--->" "[ ${disk}/file_${i}.tar ]"
				d="成功"
			else
				red_zt_bg "解压失败--->" "[ ${disk}/file_${i}.tar ]"
				d="失败"
			fi
			red_z "${i}M文件测试结果:"
			red_z_green_z  "创建---->" "[ ${a} ]"
			red_z_green_z	"复制---->" "[ ${b} ]"
			red_z_green_z	"压缩---->" "[ ${c} ]"
			red_z_green_z	"解压---->" "[ ${d} ]"
			red_z_green_z "执行命令-->" "[ du -sh ${disk}/file* ]"
			green_zt "文件详情如下:" 
			du -sh ${disk}/file*

			red_z_green_z "执行命令-->" "[ rm -rf ${disk}/file* ]"
			green_zt '测试文件已删除'
			rm -rf ${disk}/file*
		done
	fi
}
if [[ "$1" == 'f' ]];then
    if [[ -e './item.sh' ]];then
        source ./item.sh
    else
        echo -e "请进入目录:[ spzx/ ]再执行脚本"
        exit 1
    fi
    test_create_file
else
    if [[ -z "$1" ]];then
		echo -e "请在脚本执行的后面加上一个参数直接进行测试，例如--->" "[ bash spzx/test/iozone.sh f ]"
    fi
fi
